﻿using System.Collections.Generic;
using UnityEngine;


namespace UFrame
{
    public class BaseEventArgs
    {

    }

    /// <summary>
    /// 框架整体初始化的第一帧
    /// </summary>
    public class UFrameInitArgs : BaseEventArgs
    {
        public static readonly int EventId = typeof(UFrameInitArgs).GetHashCode();
    }

    /// <summary>
    /// 系统队列初始化
    /// </summary>
    public class SystemInitArgs : BaseEventArgs
    {
        public static readonly int EventId = typeof(SystemInitArgs).GetHashCode();

        public bool isQueueInit = false;
    }

    public class Collision2DArgs : BaseEventArgs
    {
        public static readonly int EventId = typeof(Collision2DArgs).GetHashCode();
    }

    public class EntityMoveCollision2DArgs : BaseEventArgs
    {
        public static readonly int EventId = typeof(EntityMoveCollision2DArgs).GetHashCode();
    }

    /// <summary>
    /// 暂时没用.
    /// </summary>
    public class GameInitArgs : BaseEventArgs
    {
        public static int EventId = typeof(GameInitArgs).GetHashCode();
    }

    public class NullEventArgs : BaseEventArgs
    {
        public static readonly int EventId = typeof(NullEventArgs).GetHashCode();
    }

    public class PlayerInputEventArgs : BaseEventArgs
    {
        public static readonly int EventId = typeof(PlayerInputEventArgs).GetHashCode();

        public List<KeyCode> KeyCode = new List<KeyCode>();
    }

    public class StartLoadSceneArgs : BaseEventArgs
    {
        public static int EventId = typeof(StartLoadSceneArgs).GetHashCode();
    }

    public class EndLoadEndSceneArgs : BaseEventArgs
    {
        public static int EventId = typeof(EndLoadEndSceneArgs).GetHashCode();
    }

    /// <summary>
    /// 加载完AB包的事件通知
    /// </summary>
    public class ABLoadCompleteArgs : BaseEventArgs
    {
        public static int EventId = typeof(ABLoadCompleteArgs).GetHashCode();
    }


    /// <summary>
    /// 掉血显示MeshPro
    /// </summary>
    public class BloodBounceArgs : BaseEventArgs
    {
        public static int EventId = typeof(BloodBounceArgs).GetHashCode();
        public GameObject go;
        public string text;
    }


    /// <summary>
    /// 游戏物体死亡消息
    /// </summary>
    public class DeadGameObjArgs : BaseEventArgs
    {
        public static int EventId = typeof(DeadGameObjArgs).GetHashCode();
    }

    /// <summary>
    /// 气泡提示UI
    /// </summary>
    public class UIPopTextArgs : BaseEventArgs
    {
        public static int EventId = typeof(UIPopTextArgs).GetHashCode();
        public bool isBulletPop = false;
        public string text;
    }

    /// <summary>
    /// 呼唤醒新手引导
    /// </summary>
    public class UIGuideArgs : BaseEventArgs
    {
        public static int EventId = typeof(UIGuideArgs).GetHashCode();
        public int id;
    }

    /// <summary>
    /// 开始新手引导
    /// </summary>
    public class UIGuideBeginArgs : BaseEventArgs
    {
        public static int EventId = typeof(UIGuideBeginArgs).GetHashCode();
        public int id;
    }
}